home *** CD-ROM | disk | FTP | other *** search
Java Source | 1997-07-13 | 2.9 KB | 75 lines |
- /*
- * Copyright (c) 1995-1997 Sun Microsystems, Inc. All Rights Reserved.
- *
- * Permission to use, copy, modify, and distribute this software
- * and its documentation for NON-COMMERCIAL purposes and without
- * fee is hereby granted provided that this copyright notice
- * appears in all copies. Please refer to the file "copyright.html"
- * for further important copyright and licensing information.
- *
- * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
- * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
- * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
- * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
- * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
- */
- import java.net.*;
- import java.io.*;
-
- class KKState {
- private static final int WAITING = 0;
- private static final int SENTKNOCKKNOCK = 1;
- private static final int SENTCLUE = 2;
- private static final int ANOTHER = 3;
-
- private static final int NUMJOKES = 5;
-
- private int state = WAITING;
- private int currentJoke = 0;
-
- private String[] clues = { "Turnip", "Little Old Lady", "Atch", "Who", "Who" };
- private String[] answers = { "Turnip the heat, it's cold in here!",
- "I didn't know you could yodel!",
- "Bless you!",
- "Is there an owl in here?",
- "Is there an echo in here?" };
-
- String processInput(String theInput) {
- String theOutput = null;
-
- if (state == WAITING) {
- theOutput = "Knock! Knock!";
- state = SENTKNOCKKNOCK;
- } else if (state == SENTKNOCKKNOCK) {
- if (theInput.equalsIgnoreCase("Who's there?")) {
- theOutput = clues[currentJoke];
- state = SENTCLUE;
- } else {
- theOutput = "You're supposed to say \"Who's there?\"! Try again. Knock! Knock!";
- }
- } else if (state == SENTCLUE) {
- if (theInput.equalsIgnoreCase(clues[currentJoke] + " who?")) {
- theOutput = answers[currentJoke] + " Want another? (y/n)";
- state = ANOTHER;
- } else {
- theOutput = "You're supposed to say \"" + clues[currentJoke] + " who?\"" + "! Try again. Knock! Knock!";
- state = SENTKNOCKKNOCK;
- }
- } else if (state == ANOTHER) {
- if (theInput.equalsIgnoreCase("y")) {
- theOutput = "Knock! Knock!";
- if (currentJoke == (NUMJOKES - 1))
- currentJoke = 0;
- else
- currentJoke++;
- state = SENTKNOCKKNOCK;
- } else {
- theOutput = "Bye.";
- state = WAITING;
- }
- }
- return theOutput;
- }
- }
-